Sound.duration

Доступность

Flash Player 6.

Синтаксис

my_sound.duration:Number

Описание

Свойство, доступное только для чтения; длина звука в миллисекундах.

Пример

В следующем примере после загрузки звука его длительность выводится на панель Output. Добавьте следующий код в ваш FLA или AS файл.

var my_sound:Sound = new Sound();
my_sound.onLoad = function(success:Boolean) {
  var totalSeconds:Number = this.duration/1000;
  trace(this.duration+" ms ("+Math.round(totalSeconds)+" seconds)");
  var minutes:Number = Math.floor(totalSeconds/60);
  var seconds = Math.floor(totalSeconds)%60;
  if (seconds<10) {
    seconds = "0"+seconds;
  }
  trace(minutes+":"+seconds);
};
my_sound.loadSound("song1.mp3", true);

В следующем примере в ролик загружается несколько звуковых файлов. Прогресс-бар, нарисованный при помощи Drawing API, отображает процесс загрузки. При завершении загрузки информация о звуках выводится на панель Output.

var pb_height:Number = 10;
var pb_width:Number = 100;
var pb:MovieClip = this.createEmptyMovieClip("progressBar_mc", this.getNextHighestDepth());
pb.createEmptyMovieClip("bar_mc", pb.getNextHighestDepth());
pb.createEmptyMovieClip("vBar_mc", pb.getNextHighestDepth());
pb.createEmptyMovieClip("stroke_mc", pb.getNextHighestDepth());
pb.createTextField("pos_txt", pb.getNextHighestDepth(), 0, pb_height, pb_width, 22);

pb._x = 100;
pb._y = 100;

with (pb.bar_mc) {
  beginFill(0x00FF00);
  moveTo(0, 0);
  lineTo(pb_width, 0);
  lineTo(pb_width, pb_height);
  lineTo(0, pb_height);
  lineTo(0, 0);
  endFill();
  _xscale = 0;
}
with (pb.vBar_mc) {
  lineStyle(1, 0x000000);
  moveTo(0, 0);
  lineTo(0, pb_height);
}
with (pb.stroke_mc) {
  lineStyle(3, 0x000000);
  moveTo(0, 0);
  lineTo(pb_width, 0);
  lineTo(pb_width, pb_height);
  lineTo(0, pb_height);
  lineTo(0, 0);
}

var my_interval:Number;
var my_sound:Sound = new Sound();
my_sound.onLoad = function(success:Boolean) {
  if (success) {
    trace("sound loaded");
  }
};
my_sound.onSoundComplete = function() {
  clearInterval(my_interval);
  trace("Cleared interval");
}
my_sound.loadSound("song3.mp3", true);
my_interval = setInterval(updateProgressBar, 100, my_sound);

function updateProgressBar(the_sound:Sound):Void {
  var pos:Number = Math.round(the_sound.position/the_sound.duration*100);
  pb.bar_mc._xscale = pos;
  pb.vBar_mc._x = pb.bar_mc._width;
  pb.pos_txt.text = pos+"%";
}

См. также

Sound.position